home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / WINSRC.SEQ < prev    next >
Text File  |  2019-04-13  |  4KB  |  210 lines

  1. ;winsrc.seq
  2. ;tsds source code for c-128 (80 col.) window wonder (c) 1987 by ron le mon
  3. scrorg=65517;.a=sc width, .x=win width, .y=win heigth
  4. sctop=229;window top
  5. sclf=230;window left side
  6. modemsb=215;display mode:$80=80 col, $00=40 col
  7. graphm=216;graphic mode
  8. swapper=65375;swap editor locals
  9. vdcadr=54784;8563 address register
  10. vdcdat=54785;8563 data register
  11. upadhi=18;update addrss hi
  12. dreg=31;data register
  13. primm=65405;kernal print utility
  14. vm2=2605;video matrix pointer (shadow register)
  15. exmon=814;monitor command vector
  16. *=8192
  17. lda #120;**************** initialize *********** sys8291 ******** $2000
  18. sta vm2
  19. lda graphm
  20. ora #32
  21. sta graphm
  22. lda #35
  23. ldy #36
  24. ldx #37
  25. sta clear0+2
  26. sty clear1+2
  27. stx clear2+2
  28. lda #32
  29. ldy #26
  30. clear ldx #0
  31. clear0 sta 8960,x
  32. clear1 sta 9216,x
  33. clear2 sta 9472,x
  34. inx
  35. bne clear0
  36. inc clear0+2
  37. inc clear1+2
  38. inc clear2+2
  39. dey
  40. bne clear
  41. lda #0
  42. sta graphm
  43. lda modemsb
  44. bmi bypass
  45. jsr primm
  46. .byt 'change monitor from composite to rgbi',0
  47. jsr swapper
  48. bypass jsr primm
  49. .byt 150,'        c-128 window wonder is now initialized',13,158
  50. .byt 'sys8192',153,' initializes window wonder',13,158,'sys8500',153
  51. .byt ' alternately stores and then restores 80 col text screen windows'
  52. .byt 13,158,0
  53. reset lda #0;****************** reset *********** sys8463 ******* $210f
  54. sta flag
  55. lda exmon;lsb
  56. ldy exmon+1;msb
  57. cpy #34
  58. beq skipit
  59. sta newvec1;lsb
  60. sty newvec2;msb
  61. skipit lda #<newvec0
  62. ldy #>newvec0
  63. sta exmon;lsb
  64. sty exmon+1;msb
  65. lda #1
  66. sta init
  67. rts
  68. enter jsr findad;************** enter *********** sys8500 ******* $2134
  69. jsr test
  70. bcc cont
  71. rts
  72. cont jsr toggle
  73. jsr routine
  74. jsr pointers
  75. jsr attributes
  76. rts
  77. findad ldy #0;***************** findad ********** sys8522 ******* $214a
  78. lda #0
  79. sta hiaddress
  80. sta loaddress
  81. sta counter
  82. count lda counter
  83. cmp sctop
  84. beq home
  85. sta counter
  86. inc counter
  87. lda #80
  88. clc
  89. adc loaddress
  90. bcc skip0
  91. inc hiaddress
  92. skip0 sta loaddress
  93. jmp count
  94. home lda loaddress
  95. clc
  96. adc sclf
  97. bcc skip1
  98. inc hiaddress
  99. skip1 sta loaddress
  100. jsr scrorg
  101. inx
  102. stx width
  103. iny
  104. sty heigth
  105. rts
  106. datar ldx #dreg;************* datar / read *******
  107. read stx vdcadr
  108. wait bit vdcadr
  109. bpl wait
  110. lda vdcdat
  111. rts
  112. dataw ldx #dreg;************* dataw / write *******
  113. write stx vdcadr
  114. wait2 bit vdcadr
  115. bpl wait2
  116. sta vdcdat
  117. rts
  118. toggle lda flag;************* toggle flag ******** sys8619 ****** $21ab
  119. clc
  120. adc #128
  121. sta flag
  122. lda #0
  123. sta vicscn0+1;lsb
  124. sta vicscn1+1;lsb
  125. lda #35
  126. sta vicscn0+2;msb
  127. sta vicscn1+2;msb
  128. pointers lda heigth;********* set pointers ******** sys8644 ***** $21c4
  129. sta heigth2
  130. lda loaddress
  131. ldy hiaddress
  132. rts
  133. attributes pha;*************** attributes ********* sys8657 ***** $21d1
  134. tya
  135. clc
  136. adc #8
  137. tay
  138. pla
  139. routine sta addlo+1;********** routine ************* sys8664 ***** $21d8
  140. sty addhi+1
  141. back ldx #upadhi
  142. addhi lda #0
  143. jsr write
  144. inx
  145. addlo lda #0
  146. jsr write
  147. ldy width
  148. mode ldx flag
  149. bmi store
  150. vicscn0 lda $ffff,y
  151. jsr dataw
  152. jmp next
  153. store jsr datar
  154. vicscn1 sta $ffff,y
  155. next dey
  156. bne mode
  157. lda addlo+1
  158. clc
  159. adc #80
  160. bcc skip3
  161. inc addhi+1
  162. skip3 sta addlo+1
  163. lda vicscn0+1;lsb
  164. clc
  165. adc width
  166. bcc skip4
  167. inc vicscn0+2;msb
  168. skip4 sta vicscn0+1;lsb
  169. lda vicscn1+1;lsb
  170. clc
  171. adc width
  172. bcc skip5
  173. inc vicscn1+2;msb
  174. skip5 sta vicscn1+1;lsb
  175. dec heigth2
  176. bne back
  177. rts
  178. test lda #0;******************* test *********** sys8759 ****** $2237
  179. cmp init
  180. beq error
  181. lda exmon+1;msb
  182. cmp #34
  183. beq exit
  184. error jsr primm
  185. .byt 147,150,17,'        error',15,' window wonder not initialized',143
  186. .byt 153,' press return',13,158,'sys8192',19,153,0
  187. sec
  188. rts
  189. exit clc
  190. rts
  191. newvec0 .byt 76;*************** new vector ****** sys8854 ****** $2296
  192. newvec1 .byt 255
  193. newvec2 .byt 255
  194. counter .byt 0;**************** registers ********** 8857 ****** $2299
  195. loaddress .byt 0
  196. hiaddress .byt 0
  197. width .byt 0
  198. heigth .byt 0
  199. heigth2 .byt 0
  200. flag .byt 0
  201. init .byt 0
  202. .end (672 bytes)
  203. ;
  204. ;admittedly i have not documented this source file as well as i could have 3030 ;but it served my purposes. for a more scholarly treatise on the subject
  205. ;of programming the 80 column (8563) chip see "commodore 128 programmer's
  206. ;reference guide", chapter 10, published by bantam books.
  207. ;
  208. ;                                          ron  le mon
  209. ;                                          76556,2477
  210.